import Vue from 'vue'
import App from './App.vue'
import router from './router'
import 'lib-flexible'
import Vant from 'vant'
import 'vant/lib/index.css'
import store from './store'
import { sync } from 'vuex-router-sync'
import { getCookieToken } from '@/utils/auth'
Vue.use(Vant)

import { DevConfig, nativeHandler } from 'qmp-native'
Vue.prototype.$nativeHandler = nativeHandler
window.nativeHandler = nativeHandler
if (process.env.NODE_ENV !== 'production') {
  // web测试环境调试配置
  DevConfig.useDefaultData = true // 开发环境调用原生方法时，使用是否使用默认数据
  DevConfig.defaultData = {
    '': {
      token: `bearer ${getCookieToken()}`
    },
    // nativeHandler('getBaseInfo') 接口在测试环境返回的数据
    'getBaseInfo': {
      account: 'yuhao1', // 账号
      userName: '土豪', // 用户名
      photo: '' // 头像
    },
    // 调用原生其他接口 返回的数据
    'default': {
      'property1': 'value1',
      'property2': 'value2'
    }
  }
}

import utils from '@/utils'
Vue.use(utils)
import emitter from '@/utils/emitter'
Vue.mixin(emitter)

import { isProduction, staticPrefix } from '@/settings'
Vue.prototype.isProduction = isProduction

import { formatURL } from '@/utils'
Vue.filter('filterURL', (url, prefix = staticPrefix) => {
  // url 为固定的参数 如果url为相对地址,则返回绝对地址
  return formatURL(url, prefix)
})

import SvgIcon from '@/components/SvgIcon'
Vue.component('svg-icon', SvgIcon)

import ComHeader from '@/components/Header'
Vue.component('ComHeader', ComHeader)

import '@/permission' // permission control

Vue.config.productionTip = false

sync(store, router)

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
